//导入插件
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import ElementUI from "element-ui";
// 导入全局样式表
import "element-ui/lib/theme-chalk/index.css";
import "./assets/css/global.css";

//导入 iconfont
import "./assets/iconfont/iconfont.css";

import axios from "axios";
//配置请求的根路径
// axios.defaults.baseURL = 'http://127.0.0.1:3000/api/private/v1'
axios.defaults.baseURL = "https://www.liulongbin.top:8888/api/private/v1";
// 配置请求拦截器 添加token
axios.interceptors.request.use(
  function(config) {
    //这里经常搭配token使用，将token放在请求头中
    config.headers["Authorization"] = window.sessionStorage.getItem("token");
    return config;
  },
  function(error) {
    // Do something with request error
    return Promise.reject(error);
  }
);
Vue.prototype.$http = axios;
Vue.use(ElementUI);
//配置为开发环境
Vue.config.productionTip = false;

//挂载路由导航守卫，用于控制访问页面的权限
router.beforeEach(async (to, from, next) => {
  /**
   * to代表要访问路径的对象
   * from表示从哪个路径跳转而来
   * next是一个函数表示放行 ，next('/login')表示强行跳转到登录页
   */
  if (to.path === "/login") {
    return next();
  }
  //获取token
  let tokenStr = window.sessionStorage.getItem("token");
  console.log("token=" + tokenStr);
  //如果token不存在，则强制跳转到登录页
  if (!tokenStr) {
    ElementUI.Message.warning("请先登录");
    return next(`/login?redirect='${to.path}`);
  }
  next();
});

let vue = new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");
